Some enterprises need to fill positions at both stationary and non-stationary work locations with large numbers of workers who may be spread across a wide geographic area. Workers may be rotated in and out of these positions, requiring scheduling that ensures that a position does not go vacant for an unacceptable period of time. As the size of the enterprise increases, the job of scheduling workers to fill positions within the enterprise becomes increasingly complex.
For example, a cruise ship operator may have a large number of non-stationary locations, such as cruise ships. The cruise ship operator may have thousands of positions, or posts, to fill on the cruise ships. Consequently, the cruise ship operator may employ thousands of workers, both employees and independent contractors, as crew on the cruise ships. Each post may need to be filled by a crew member appropriate for that post, for example, having the appropriate skills, certificates, and license, and the scheduling of crew members may need to take into account how long one crew member can fill a post and how the crew member will get to the location of the post and back home. The cruise ship operator may need to perform complex scheduling to get the right crew members to the right locations to fill the right post at the right time while keeping travel costs down and vacancy times to a minimum. The scheduling can be done manually, making use of current database software, but this may be tedious, labor-intensive, time-consuming, and the schedule produced may not be the most efficient or optimal schedule.